﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.DynamicData;
using System.Web.UI;
using System.Web.UI.WebControls;
using FlexiCommerce.Configuration;

namespace FlexiCommerce.Web {
    public partial class Default_InsertEntityTemplate : System.Web.DynamicData.EntityTemplateUserControl {
        private MetaColumn currentColumn;
    
        protected override void OnLoad(EventArgs e) {
            IList<MetaColumn> columns = new System.Collections.Generic.List<MetaColumn>(Table.GetScaffoldColumns(Mode, ContainerType));
            if (FlexiCommerce.Context.Current.Resolve<EngineSection>().EnableGlobalization)
            {
                for (int i = columns.Count - 1; i >= 0; i--)
                {
                    foreach (Attribute a in columns[i].Attributes)
                    {
                        if (a.GetType() == typeof(FlexiCommerce.Localization.LocalizedFieldAttribute))
                        {
                            columns.RemoveAt(i);
                        }
                    }
                }
            }
            foreach (MetaColumn column in columns)
            {
                currentColumn = column;
                Control item = new DefaultEntityTemplate._NamingContainer();
                EntityTemplate1.ItemTemplate.InstantiateIn(item);
                EntityTemplate1.Controls.Add(item);
            }
        }
    
        protected void Label_Init(object sender, EventArgs e) {
            Label label = (Label)sender;
            label.Text = currentColumn.DisplayName;
        }
    
        protected void Label_PreRender(object sender, EventArgs e) {
            Label label = (Label)sender;
            DynamicControl dynamicControl = (DynamicControl)label.FindControl("DynamicControl");
            FieldTemplateUserControl ftuc = dynamicControl.FieldTemplate as FieldTemplateUserControl;
            if (ftuc != null && ftuc.DataControl != null) {
                label.AssociatedControlID = ftuc.DataControl.GetUniqueIDRelativeTo(label);
            }
        }
    
        protected void DynamicControl_Init(object sender, EventArgs e) {
            DynamicControl dynamicControl = (DynamicControl)sender;
            dynamicControl.DataField = currentColumn.Name;
        }
    
    }
}
